/*
 * 添加预约会议模块
 * 2018年3月19日16:29:05
 * xwx-add
 */

(function($) {
	$.init();

	//	初始化按钮数据对象
	var rbeginTime = $("#beginTime")[0];
	var rendTime = $('#endTime')[0];
	var remindTime = $('#remindTime')[0];
	$('#password')[0].style.display = 'none';
	var initroomdata = [];

	var reserveojb = {}; //预约会议对象
	var _subject; //会议主题
	var _introduction; //会议简介
	var _roomid; //会议房间id
	var _begintime; //开始时间
	var _endtime; //结束时间
	var _isopen = true; //是否公开
	var _password; //房间秘密
	var _remindtime; //提醒时间
	var _creator; //创建人id
	var _membersobj; //参会人员
	var _assistantsobj; //会议助手

	//	获取会议房间
	server.meeting.getRoomSchedules('', function(r) {
		if(r.length > 0) {
			var temp = [];
			for(var i = 0; i < r.length; i++) {
				temp = {
					"value": r[i].room.id,
					"text": r[i].room.name
				};
				initroomdata.push(temp);
			}
		}
	}, function(r) {
		console.log('请求服务器失败，请稍后重试');
	})

	initEvt();

	/*
	 * 初始化按钮事件
	 * 
	 * */
	function initEvt() {

		//	开始时间选择
		$('body').on('tap', '#beginTime', function() {

			var optionsJson = this.getAttribute('data-options') || '{}';
			var options = JSON.parse(optionsJson);
			var picker = new mui.DtPicker(options);
			picker.show(function(rs) {
				rbeginTime.value = rs.text;
				if(rendTime.value != '') {
					var start = new Date(rbeginTime.value.replace("-", "/").replace("-", "/"));
					var end = new Date(rendTime.value.replace("-", "/").replace("-", "/"));
					if(end < start) {
						mui.toast("时间开始日期大于结束日期,请选择会议结束时间");
						rendTime.value = '';
						return;
					}
				}

				picker.dispose();
			});
		}, false);

		//	结束时间选择
		$('body').on('tap', '#endTime', function() {
			if(rbeginTime.value == "") {
				mui.toast('请选择会议开始时间');
				return;
			}
			var optionsJson = this.getAttribute('data-options') || '{}';
			var options = JSON.parse(optionsJson);
			var picker = new mui.DtPicker(options);

			picker.show(function(rs) {
				rendTime.value = rs.text;

				var start = new Date(rbeginTime.value.replace("-", "/").replace("-", "/"));
				var end = new Date(rendTime.value.replace("-", "/").replace("-", "/"));
				if(end < start) {
					mui.toast("会议开始时间不能大于结束时间");
					rendTime.value = '';
					return;
				} else {
					picker.dispose();
				}

			});
		}, false);

		//	会议房间选择
		$('body').on('tap', '#roomId', function() {
			var userPicker = new $.PopPicker();
			userPicker.setData(initroomdata);
			var userResult = document.getElementById('roomId');
			userPicker.show(function(items) {
				userResult.value = items[0].text;
				_roomid = items[0].value; //设置房间id
				//返回 false 可以阻止选择框的关闭
				//return false;
			});
		}, false);

		//	提醒时间选择
		$('body').on('tap', '#remindTime', function() {
			var optionsJson = this.getAttribute('data-options') || '{}';
			var options = JSON.parse(optionsJson);
			var picker = new mui.DtPicker(options);
			picker.show(function(rs) {
				remindTime.value = rs.text;
				picker.dispose();
			});
		}, false);

		//	是否公开选项
		document.getElementById("isOpen").addEventListener("toggle", function(event) {
			if(event.detail.isActive) {
				$('#password')[0].style.display = 'none';
				_isopen = true;
			} else {
				$('#password')[0].style.display = 'block';
				_isopen = false;
			}
		})

		//	参会人员选择
		$('body').on('tap', '#members', function() {
			onPenView(1, _membersobj);
		});

		//	会议助手选择
		$('body').on('tap', '#assistants', function() {
			onPenView(2, _assistantsobj);
		});

		//	预约会议
		$('body').on('tap', '#btnBooking', function() {
			var logininfo = app.getUserInfo();
			_creator = logininfo.id;

			if(!document.getElementById('subject').value) {
				mui.toast('请填写会议主题');
				return;
			};

			_subject = document.getElementById('subject').value;

			if(!document.getElementById('introduction').value) {
				mui.toast('请填写会议简介');
				return;
			};

			if(!_roomid) {
				mui.toast('请选择会议房间');
				return;
			}

			_introduction = document.getElementById('introduction').value;

			if(!rbeginTime.value) {
				mui.toast('请选择开始时间');
				return;
			};

			_begintime = rbeginTime.value;

			if(!rendTime.value) {
				mui.toast('请选择结束时间');
				return;
			};

			_endtime = rendTime.value;

			if(!remindTime.value) {
				mui.toast('请选择提醒时间');
				return;
			};

			_remindtime = remindTime.value;

			if(_isopen) {
				_password = '';
			} else {
				if(document.getElementById('password').value == '') {
					mui.toast('请设置房间密码');
					return;
				};
				_password = document.getElementById('password').value;
			}

			//取消限制参会人员
			/*if(!_membersobj) {
				mui.toast('请选择参会人员');
				return;
			}*/

			var _members = [];
			if(_membersobj != undefined) {
				for(var i = 0; i < _membersobj.length; i++) {
					_members.push(_membersobj[i].id);
				}
			}

			if(!_assistantsobj) {
				mui.toast('请选择会议助手');
				return;
			}

			var _assistants = [];
			for(var i = 0; i < _assistantsobj.length; i++) {
				_assistants.push(_assistantsobj[i].id);
			}

			reserveojb = {
				"subject": _subject,
				"introduction": _introduction,
				"roomid": _roomid,
				"begintime": _begintime,
				"endtime": _endtime,
				"isopen": _isopen,
				"password": _password,
				"creator": _creator,
				"members": _members,
				"assistants": _assistants,
			}

			mui.confirm('确认预约会议', '温馨提示', '', function(e) {
				if(e.index == 1) {
					server.meeting.bookMeeting(reserveojb, function(r) {
						if(r.errCode == 0) {
							mui.toast('预约会议成功');
							var page = plus.webview.getWebviewById('bookingInfo');
							mui.fire(page, 'refresh');
							mui.back(); //返回上级界面、解决点击返回图标进入添加预约界面bug
						} else {
							mui.totast('预约会议失败');
						}
					}, function(r) {
						mui.toast('服务器错误,请稍后刷新重试');
					})

				}
			}, 'div');

		});

	};

	//	打开新消息通知界面
	function onPenView(type, values) {
		var sObjs = values || ''
		mui.openWindow({
			url: "userselector.html",
			id: "userselector.html",
			extras: {
				"typetit": type == 1 ? "人员选择" : "会议助手", // 顶部导航展示
				'selectors': sObjs
			},
			createNew: true, //是否重复创建同样id的webview，默认为false:不重复创建，直接显示
			show: {
				autoShow: true, //页面loaded事件发生后自动显示，默认为true
				aniShow: 'slide-in-right', //页面显示动画，默认为”slide-in-right“；
				duration: 600 //页面动画持续时间，Android平台默认100毫秒，iOS平台默认200毫秒；
			},
			waiting: {
				autoShow: true, //自动显示等待框，默认为true
				title: '正在加载...' //等待对话框上显示的提示内容
			}
		})
	};

	$.plusReady(function() {
		var id = plus.webview.currentWebview().id;
	});

	//	从子页面获取人员选择、会议助手选择对象数据方法【监听自定义事件】
	window.addEventListener('getUserselector', function(r) {
		var values = r.detail.items;
		var names = '';
		for(var i = 0; i < values.length; i++) {
			names += names == '' ? values[i].name : ', ' + values[i].name;
		}

		//	判断返回参数类型添加到指定的人员模块
		if(r.detail.type == '1') {
			document.getElementById("members").innerText = names;
			_membersobj = values;
		} else {
			document.getElementById("assistants").innerText = names;
			_assistantsobj = values;
		}
	});

})(mui);